template <class T, class Ch = char, class Tr = char_traits<Ch> >
class ostream_iterator:public iterator<output_iterator_tag, void, void, void>
{
public:
    typedef Ch char_type;
    typedef Tr traits_type;
    typedef basic_ostream<Ch, Tr> ostream_type;
    ostream_iterator(ostream_type& s);
    ostream_iterator(ostream_type& s, const Ch* delim);
    ostream_iterator(const ostream_iterator&);
    ~ostream_iterator();
    ostream_iterator& operator=(const T& val);

    ostream_iterator& operator*();
    ostream_iterator& operator++();
    ostream_iterator& operator++(int);
};

    
